package itheima01;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author Xiao
 * @date 2021/7/28
 */
@SuppressWarnings("all")
public class StreamDemo06 {
    /**
     * Stream流的收集方法：
     * 	R collect(Collector collector)
     *          （Stream对象调用该收集方法，形参为收集器，可以传入工具类Collectors提供的收集方法）
     * 工具类Collectors提供了具体的收集方式：
     * 	public static <T> Collector toList()：把元素收集到List集合中；
     * 	public static <T> Collector toSet()：把元素收集到Set集合中；
     * 	public static <T> Collector toMap(Function keyMapper, Function calueMapper)：把元素收集到Map集合中；
     */
    public static void main(String[] args) {
        /**
         * collect:收集数据；
         *      Collectors.toMap():在底层创建一个对应的Map集合添加数据。
         *          toMap()中传入2个参数（Lambda表达式）：
         *              第1个Lambda表达式：如何获取Map中的键；
         *              第2个Lambda表达式：如何获取Map中的值；
         */
        ArrayList<String> list = new ArrayList<>(List.of(
                "aliang,24","zuoyou,25","ping'an,21"));
        /*Map<String, Integer> map = list.stream().collect(Collectors.toMap(
                (String s) -> {
                    return s.split(",")[0];
                },
                (String s) -> {
                    return Integer.parseInt(s.split(",")[1]);
                }));*/
        Map<String, String> map = list.stream().collect(Collectors.toMap(
                s -> s.split(",")[0],
                s -> s.split(",")[1]));
        //{aliang=24, ping'an=21, zuoyou=25}
        System.out.println(map);
    }
}
